﻿using System;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using Microsoft.SharePoint;
using System.Collections.Generic;
using System.Collections;
using System.Text;
using System.Linq;

namespace SP_XHWeb.WebParts.EmployeeInfo
{
    public partial class EmployeeInfoUserControl : UserControl
    {
        string siteUrl = string.Empty;
        public string EmployeeInfoUrl = "/_layouts/SP_XHWeb/EmployeeDetails.aspx?item_id=";
        public string piclink = "/companyinfo/pages/yellowpage2.aspx";
        public string txtlink = "/companyinfo/pages/yellowpage.aspx";
        public string pname = string.Empty;
        protected void Page_Load(object sender, EventArgs e)
        {
            string absolPath = this.Page.Request.Url.AbsolutePath.ToLower();
            string hostUrl = this.Page.Request.Url.Scheme + "://" + this.Page.Request.Url.Authority;
            string[] str = absolPath.Substring(1).Split('/');
            gvEp.RowDataBound += new GridViewRowEventHandler(gvEp_RowDataBound);

            if (str != null && str.Length > 2 && str[0] == "projectinfo" && str[1] != "")
            {
                using (SPSite site = new SPSite(hostUrl + "/" + str[0] + "/" + str[1]))
                {
                    using (SPWeb web = site.OpenWeb())
                    {
                        pname = web.Title.Trim().Replace("项目", "");
                        txtlink = "/" + str[0] + "/" + str[1] + "/pages/employee.aspx";
                        piclink = "/" + str[0] + "/" + str[1] + "/pages/employee2.aspx";
                    }
                }
            }
            if (!IsPostBack)
            {

                if (string.IsNullOrEmpty(pname))
                {
                    ddl1.DataSource = InitCompany();
                    ddl1.DataBind();
                    gvEp.DataSource = GetEmployee();
                    gvEp.DataBind();
                }
                else
                {
                    ddl1.DataSource = InitCompany(pname);
                    ddl1.DataBind();
                    gvEp.DataSource = GetEmployee(pname);
                    gvEp.DataBind();
                }
                ddl2.DataSource = InitDepartment();
                ddl2.DataBind();


                //ddl3.DataSource = InitCompany();
                //ddl3.DataBind();
                //ddl4.DataSource = InitDepartment();
                //ddl4.DataBind();
                //gvEppic.DataSource = GetPicEmployee();
                //gvEppic.DataBind();

            }

        }

        private string UpdatePictureFormat(string pic)
        {
            string picstr = string.Empty;
            if (!string.IsNullOrEmpty(pic))
            {
                if (pic.Contains("<img"))
                {
                    string tempic = pic.Substring(pic.IndexOf("<img"));
                    picstr = tempic.Substring(0, tempic.IndexOf("/>") + 2).Replace("margin:5px", "").Replace("margin: 5px", "");
                }
                else
                {
                    picstr = "/";
                }
            }
            return picstr;
        }


        /// <summary>
        /// 查看所有员工信息
        /// </summary>
        /// <returns></returns>
        private List<EmployeeDetails> GetEmployee()
        {
            List<EmployeeDetails> lists = new List<EmployeeDetails>();
            string hostUrl = this.Page.Request.Url.Scheme + "://" + this.Page.Request.Url.Authority;
            //string siteUrl = this.Page.Request.Url.ToString().ToLower();
            if (!string.IsNullOrEmpty(hostUrl))
            {
                using (SPSite site = new SPSite(hostUrl + "/companyinfo/default.aspx"))
                {
                    using (SPWeb web = site.OpenWeb())
                    {
                        SPList list = web.Lists.TryGetList("EmployeeInfo");
                        if (list != null && list.ItemCount != 0)
                        {
                            foreach (SPListItem item in list.Items)
                            {
                                lists.Add(new EmployeeDetails(item.ID, item["姓名"].ToString().Trim(), item["照片"] != null && !string.IsNullOrEmpty(item["照片"].ToString()) ? UpdatePictureFormat(item["照片"].ToString()) : "/", item["性别"].ToString(), item["公司"].ToString().Trim(), item["部门"].ToString().Trim(), item["职位"].ToString().Trim(), item["固定电话"].ToString().Trim(), item["移动电话"].ToString().Trim(), item["电子邮件"].ToString(), item["生日"].ToString().Trim(), item["新浪微博"].ToString(), item["QQ"].ToString(), item["MSN"].ToString(), item["个人博客地址"].ToString(), item["自我介绍"] != null && !string.IsNullOrEmpty(item["自我介绍"].ToString()) ? item["自我介绍"].ToString() : "", item["兴趣爱好"] != null && !string.IsNullOrEmpty(item["兴趣爱好"].ToString()) ? item["兴趣爱好"].ToString() : "", item["入职日期"].ToString(), item["排序数"] != null && !string.IsNullOrEmpty(item["排序数"].ToString()) ? Int32.Parse(item["排序数"].ToString()) : 9999));
                            }
                        }
                    }
                }
            }
            if (lists != null && lists.Count > 0)
            {
                lists = (from emp in lists orderby emp.OrderNum ascending select emp).ToList<EmployeeDetails>();
            }
            return lists;
        }

        /// <summary>
        /// 查看项目内所有员工信息
        /// </summary>
        /// <returns></returns>
        private List<EmployeeDetails> GetEmployee(string name)
        {
            List<EmployeeDetails> lists = new List<EmployeeDetails>();
            string hostUrl = this.Page.Request.Url.Scheme + "://" + this.Page.Request.Url.Authority;
            //string siteUrl = this.Page.Request.Url.ToString().ToLower();
            if (!string.IsNullOrEmpty(hostUrl))
            {
                using (SPSite site = new SPSite(hostUrl + "/companyinfo/default.aspx"))
                {
                    using (SPWeb web = site.OpenWeb())
                    {
                        SPList list = web.Lists.TryGetList("EmployeeInfo");
                        if (list != null && list.ItemCount != 0)
                        {
                            foreach (SPListItem item in list.Items)
                            {
                                if (item["公司"].ToString().Trim().StartsWith(name))
                                {
                                    lists.Add(new EmployeeDetails(item.ID, item["姓名"].ToString().Trim(), item["照片"] != null && !string.IsNullOrEmpty(item["照片"].ToString()) ? UpdatePictureFormat(item["照片"].ToString()) : "/", item["性别"].ToString(), item["公司"].ToString().Trim(), item["部门"].ToString().Trim(), item["职位"].ToString().Trim(), item["固定电话"].ToString().Trim(), item["移动电话"].ToString().Trim(), item["电子邮件"].ToString(), item["生日"].ToString().Trim(), item["新浪微博"].ToString(), item["QQ"].ToString(), item["MSN"].ToString(), item["个人博客地址"].ToString(), item["自我介绍"] != null && !string.IsNullOrEmpty(item["自我介绍"].ToString()) ? item["自我介绍"].ToString() : "", item["兴趣爱好"] != null && !string.IsNullOrEmpty(item["兴趣爱好"].ToString()) ? item["兴趣爱好"].ToString() : "", item["入职日期"].ToString(), item["排序数"] != null && !string.IsNullOrEmpty(item["排序数"].ToString()) ? Int32.Parse(item["排序数"].ToString()) : 9999));
                                }
                            }
                        }
                    }
                }
            }
            if (lists != null && lists.Count > 0)
            {
                lists = (from emp in lists orderby emp.OrderNum ascending select emp).ToList<EmployeeDetails>();
            }
            return lists;
        }


        /// <summary>
        /// 查询员工信息
        /// </summary>
        /// <param name="strComp">选择公司</param>
        /// <param name="strDept">选择部门</param>
        /// <param name="strName">姓名</param>
        /// <returns></returns>
        private List<EmployeeDetails> GetEmployee(string strComp, string strDept, string strName)
        {
            List<EmployeeDetails> lists = new List<EmployeeDetails>();
            string hostUrl = this.Page.Request.Url.Scheme + "://" + this.Page.Request.Url.Authority;
      
            if (!string.IsNullOrEmpty(hostUrl))
            {
                using (SPSite site = new SPSite(hostUrl + "/companyinfo/default.aspx"))
                {
                    using (SPWeb web = site.OpenWeb())
                    {
                        SPList list = web.Lists.TryGetList("EmployeeInfo");
                        if (list != null && list.ItemCount != 0)
                        {
                            //公司不为空
                            if (strComp != "选择公司" && strDept == "选择部门" && string.IsNullOrEmpty(strName))
                            {
                                foreach (SPListItem item in list.Items)
                                {
                                    if (item["公司"].ToString().Trim().ToLower() == strComp.Trim().ToLower())
                                    {
                                        lists.Add(new EmployeeDetails(item.ID, item["姓名"].ToString().Trim(), item["照片"] != null && !string.IsNullOrEmpty(item["照片"].ToString()) ? UpdatePictureFormat(item["照片"].ToString()) : "/", item["性别"].ToString(), item["公司"].ToString().Trim(), item["部门"].ToString().Trim(), item["职位"].ToString().Trim(), item["固定电话"].ToString().Trim(), item["移动电话"].ToString().Trim(), item["电子邮件"].ToString(), item["生日"].ToString().Trim(), item["新浪微博"].ToString(), item["QQ"].ToString(), item["MSN"].ToString(), item["个人博客地址"].ToString(), item["自我介绍"] != null && !string.IsNullOrEmpty(item["自我介绍"].ToString()) ? item["自我介绍"].ToString() : "", item["兴趣爱好"] != null && !string.IsNullOrEmpty(item["兴趣爱好"].ToString()) ? item["兴趣爱好"].ToString() : "", item["入职日期"].ToString(), item["排序数"] != null && !string.IsNullOrEmpty(item["排序数"].ToString()) ? Int32.Parse(item["排序数"].ToString()) : 9999));
                                    }
                                }
                            }
                            //部门不为空
                            else if (strComp == "选择公司" && strDept != "选择部门" && string.IsNullOrEmpty(strName))
                            {
                                foreach (SPListItem item in list.Items)
                                {
                                    if (item["部门"].ToString().Trim().ToLower() == strDept.Trim().ToLower())
                                    {
                                        lists.Add(new EmployeeDetails(item.ID, item["姓名"].ToString().Trim(), item["照片"] != null && !string.IsNullOrEmpty(item["照片"].ToString()) ? UpdatePictureFormat(item["照片"].ToString()) : "/", item["性别"].ToString(), item["公司"].ToString().Trim(), item["部门"].ToString().Trim(), item["职位"].ToString().Trim(), item["固定电话"].ToString().Trim(), item["移动电话"].ToString().Trim(), item["电子邮件"].ToString(), item["生日"].ToString().Trim(), item["新浪微博"].ToString(), item["QQ"].ToString(), item["MSN"].ToString(), item["个人博客地址"].ToString(), item["自我介绍"] != null && !string.IsNullOrEmpty(item["自我介绍"].ToString()) ? item["自我介绍"].ToString() : "", item["兴趣爱好"] != null && !string.IsNullOrEmpty(item["兴趣爱好"].ToString()) ? item["兴趣爱好"].ToString() : "", item["入职日期"].ToString(), item["排序数"] != null && !string.IsNullOrEmpty(item["排序数"].ToString()) ? Int32.Parse(item["排序数"].ToString()) : 9999));
                                    }
                                }
                            }
                            //姓名不为空
                            else if (strComp == "选择公司" && strDept == "选择部门" && !string.IsNullOrEmpty(strName))
                            {
                                foreach (SPListItem item in list.Items)
                                {
                                    if (item["姓名"].ToString().Trim().ToLower().Contains(strName.Trim().ToLower()))
                                    {
                                        lists.Add(new EmployeeDetails(item.ID, item["姓名"].ToString().Trim(), item["照片"] != null && !string.IsNullOrEmpty(item["照片"].ToString()) ? UpdatePictureFormat(item["照片"].ToString()) : "/", item["性别"].ToString(), item["公司"].ToString().Trim(), item["部门"].ToString().Trim(), item["职位"].ToString().Trim(), item["固定电话"].ToString().Trim(), item["移动电话"].ToString().Trim(), item["电子邮件"].ToString(), item["生日"].ToString().Trim(), item["新浪微博"].ToString(), item["QQ"].ToString(), item["MSN"].ToString(), item["个人博客地址"].ToString(), item["自我介绍"] != null && !string.IsNullOrEmpty(item["自我介绍"].ToString()) ? item["自我介绍"].ToString() : "", item["兴趣爱好"] != null && !string.IsNullOrEmpty(item["兴趣爱好"].ToString()) ? item["兴趣爱好"].ToString() : "", item["入职日期"].ToString(), item["排序数"] != null && !string.IsNullOrEmpty(item["排序数"].ToString()) ? Int32.Parse(item["排序数"].ToString()) : 9999));
                                    }
                                }
                            }
                            //公司与部门不为空
                            else if (strComp != "选择公司" && strDept != "选择部门" && string.IsNullOrEmpty(strName))
                            {
                                foreach (SPListItem item in list.Items)
                                {
                                    if (item["公司"].ToString().Trim().ToLower() == strComp.Trim().ToLower() && item["部门"].ToString().Trim().ToLower() == strDept.Trim().ToLower())
                                    {
                                        lists.Add(new EmployeeDetails(item.ID, item["姓名"].ToString().Trim(), item["照片"] != null && !string.IsNullOrEmpty(item["照片"].ToString()) ? UpdatePictureFormat(item["照片"].ToString()) : "/", item["性别"].ToString(), item["公司"].ToString().Trim(), item["部门"].ToString().Trim(), item["职位"].ToString().Trim(), item["固定电话"].ToString().Trim(), item["移动电话"].ToString().Trim(), item["电子邮件"].ToString(), item["生日"].ToString().Trim(), item["新浪微博"].ToString(), item["QQ"].ToString(), item["MSN"].ToString(), item["个人博客地址"].ToString(), item["自我介绍"] != null && !string.IsNullOrEmpty(item["自我介绍"].ToString()) ? item["自我介绍"].ToString() : "", item["兴趣爱好"] != null && !string.IsNullOrEmpty(item["兴趣爱好"].ToString()) ? item["兴趣爱好"].ToString() : "", item["入职日期"].ToString(), item["排序数"] != null && !string.IsNullOrEmpty(item["排序数"].ToString()) ? Int32.Parse(item["排序数"].ToString()) : 9999));
                                    }
                                }
                            }
                            //公司与姓名不为空
                            else if (strComp != "选择公司" && strDept == "选择部门" && !string.IsNullOrEmpty(strName))
                            {
                                foreach (SPListItem item in list.Items)
                                {
                                    if (item["公司"].ToString().Trim().ToLower() == strComp.Trim().ToLower() && item["姓名"].ToString().Trim().ToLower().Contains(strName.Trim().ToLower()))
                                    {
                                        lists.Add(new EmployeeDetails(item.ID, item["姓名"].ToString().Trim(), item["照片"] != null && !string.IsNullOrEmpty(item["照片"].ToString()) ? UpdatePictureFormat(item["照片"].ToString()) : "/", item["性别"].ToString(), item["公司"].ToString().Trim(), item["部门"].ToString().Trim(), item["职位"].ToString().Trim(), item["固定电话"].ToString().Trim(), item["移动电话"].ToString().Trim(), item["电子邮件"].ToString(), item["生日"].ToString().Trim(), item["新浪微博"].ToString(), item["QQ"].ToString(), item["MSN"].ToString(), item["个人博客地址"].ToString(), item["自我介绍"] != null && !string.IsNullOrEmpty(item["自我介绍"].ToString()) ? item["自我介绍"].ToString() : "", item["兴趣爱好"] != null && !string.IsNullOrEmpty(item["兴趣爱好"].ToString()) ? item["兴趣爱好"].ToString() : "", item["入职日期"].ToString(), item["排序数"] != null && !string.IsNullOrEmpty(item["排序数"].ToString()) ? Int32.Parse(item["排序数"].ToString()) : 9999));
                                    }
                                }
                            }
                            //部门与姓名不为空
                            else if (strComp == "选择公司" && strDept != "选择部门" && !string.IsNullOrEmpty(strName))
                            {
                                foreach (SPListItem item in list.Items)
                                {
                                    if (item["部门"].ToString().Trim().ToLower() == strDept.Trim().ToLower() && item["姓名"].ToString().Trim().ToLower().Contains(strName.Trim().ToLower()))
                                    {
                                        lists.Add(new EmployeeDetails(item.ID, item["姓名"].ToString().Trim(), item["照片"] != null && !string.IsNullOrEmpty(item["照片"].ToString()) ? UpdatePictureFormat(item["照片"].ToString()) : "/", item["性别"].ToString(), item["公司"].ToString().Trim(), item["部门"].ToString().Trim(), item["职位"].ToString().Trim(), item["固定电话"].ToString().Trim(), item["移动电话"].ToString().Trim(), item["电子邮件"].ToString(), item["生日"].ToString().Trim(), item["新浪微博"].ToString(), item["QQ"].ToString(), item["MSN"].ToString(), item["个人博客地址"].ToString(), item["自我介绍"] != null && !string.IsNullOrEmpty(item["自我介绍"].ToString()) ? item["自我介绍"].ToString() : "", item["兴趣爱好"] != null && !string.IsNullOrEmpty(item["兴趣爱好"].ToString()) ? item["兴趣爱好"].ToString() : "", item["入职日期"].ToString(), item["排序数"] != null && !string.IsNullOrEmpty(item["排序数"].ToString()) ? Int32.Parse(item["排序数"].ToString()) : 9999));
                                    }
                                }
                            }
                            //全不为空
                            else if (strComp != "选择公司" && strDept != "选择部门" && !string.IsNullOrEmpty(strName))
                            {
                                foreach (SPListItem item in list.Items)
                                {
                                    if (item["公司"].ToString().Trim().ToLower() == strComp.Trim().ToLower() && item["部门"].ToString().Trim().ToLower() == strDept.Trim().ToLower() && item["姓名"].ToString().Trim().ToLower().Contains(strName.Trim().ToLower()))
                                    {
                                        lists.Add(new EmployeeDetails(item.ID, item["姓名"].ToString().Trim(), item["照片"] != null && !string.IsNullOrEmpty(item["照片"].ToString()) ? UpdatePictureFormat(item["照片"].ToString()) : "/", item["性别"].ToString(), item["公司"].ToString().Trim(), item["部门"].ToString().Trim(), item["职位"].ToString().Trim(), item["固定电话"].ToString().Trim(), item["移动电话"].ToString().Trim(), item["电子邮件"].ToString(), item["生日"].ToString().Trim(), item["新浪微博"].ToString(), item["QQ"].ToString(), item["MSN"].ToString(), item["个人博客地址"].ToString(), item["自我介绍"] != null && !string.IsNullOrEmpty(item["自我介绍"].ToString()) ? item["自我介绍"].ToString() : "", item["兴趣爱好"] != null && !string.IsNullOrEmpty(item["兴趣爱好"].ToString()) ? item["兴趣爱好"].ToString() : "", item["入职日期"].ToString(), item["排序数"] != null && !string.IsNullOrEmpty(item["排序数"].ToString()) ? Int32.Parse(item["排序数"].ToString()) : 9999));
                                    }
                                }
                            }
                            //全为空
                            else
                            {
                                return GetEmployee();
                            }

                        }
                    }
                }
            }
            if (lists != null && lists.Count > 0)
            {
                lists = (from emp in lists orderby emp.OrderNum ascending select emp).ToList<EmployeeDetails>();
            }
            return lists;
        }

        #region 全家福
        //private List<string> GetPicEmployee()
        //{
        //    List<string> strList = new List<string>();
        //    List<List<EmployeeDetails>> allLists = GetPicEmployeeList();
        //    for (int i = 0; i < allLists.Count; i++)
        //    {
        //        StringBuilder sb = new StringBuilder();
        //        sb.Append("<div class='family_portrait_sma'>");
        //        sb.Append("<ul>");

        //        for (int j = 0; j < allLists[i].Count; j++)
        //        {
        //            sb.Append("<li>");
        //            sb.AppendFormat("<a href='{0}'>{1}</a>", EmployeeInfoUrl + allLists[i][j].EID, allLists[i][j].Picture);
        //            sb.Append("<span>");
        //            sb.AppendFormat("<strong><a href='{0}'>{1}</a></strong><br />", EmployeeInfoUrl + allLists[i][j].EID, allLists[i][j].Name);
        //            sb.AppendFormat("{0}<br />", allLists[i][j].Company);
        //            sb.AppendFormat("{0}<br />", allLists[i][j].Department);
        //            sb.AppendFormat("{0}<br />", allLists[i][j].Position);
        //            sb.Append("</span>");
        //            sb.Append("</li>");
        //        }


        //        sb.Append("</ul>");
        //        sb.Append("</div>");

        //        strList.Add(sb.ToString());
        //    }


        //    return strList;
        //}

        //private List<string> GetPicEmployee(string strComp, string strDept, string strName)
        //{
        //    List<string> strList = new List<string>();
        //    List<List<EmployeeDetails>> allLists = GetPicEmployeeList(strComp, strDept, strName);
        //    for (int i = 0; i < allLists.Count; i++)
        //    {
        //        StringBuilder sb = new StringBuilder();
        //        sb.Append("<div class='family_portrait_sma'>");
        //        sb.Append("<ul>");


        //        for (int j = 0; j < allLists[i].Count; j++)
        //        {
        //            sb.Append("<li>");
        //            sb.AppendFormat("<a href='{0}'>{1}</a>", EmployeeInfoUrl + allLists[i][j].EID, allLists[i][j].Picture);
        //            sb.Append("<span>");
        //            sb.AppendFormat("<strong><a href='{0}'>{1}</a></strong><br />", EmployeeInfoUrl + allLists[i][j].EID, allLists[i][j].Name);
        //            sb.AppendFormat("{0}<br />", allLists[i][j].Company);
        //            sb.AppendFormat("{0}<br />", allLists[i][j].Department);
        //            sb.AppendFormat("{0}<br />", allLists[i][j].Position);
        //            sb.Append("</span>");
        //            sb.Append("</li>");
        //        }


        //        sb.Append("</ul>");
        //        sb.Append("</div>");

        //        strList.Add(sb.ToString());
        //    }


        //    return strList;
        //}

        //private List<List<EmployeeDetails>> GetPicEmployeeList()
        //{
        //    List<List<EmployeeDetails>> allLists = new List<List<EmployeeDetails>>();
        //    string hostUrl = this.Page.Request.Url.Scheme + "://" + this.Page.Request.Url.Authority;
        //    if (!string.IsNullOrEmpty(hostUrl))
        //    {
        //        using (SPSite site = new SPSite(hostUrl + "/companyinfo/default.aspx"))
        //        {
        //            using (SPWeb web = site.OpenWeb())
        //            {
        //                SPList list = web.Lists.TryGetList("EmployeeInfo");
        //                if (list != null && list.ItemCount != 0)
        //                {
        //                    List<EmployeeDetails> lists = new List<EmployeeDetails>();
        //                    int rowCount = 0;
        //                    foreach (SPListItem item in list.Items)
        //                    {
        //                        rowCount++;
        //                        lists.Add(new EmployeeDetails(item.ID, item["姓名"].ToString().Trim(), item["照片"] != null && !string.IsNullOrEmpty(item["照片"].ToString()) ? UpdatePictureFormat(item["照片"].ToString()) : "/", item["性别"].ToString(), item["公司"].ToString().Trim(), item["部门"].ToString().Trim(), item["职位"].ToString().Trim(), item["固定电话"].ToString().Trim(), item["移动电话"].ToString().Trim(), item["电子邮件"].ToString(), item["生日"].ToString().Trim(), item["新浪微博"].ToString(), item["QQ"].ToString(), item["MSN"].ToString(), item["个人博客地址"].ToString(), item["自我介绍"] != null && !string.IsNullOrEmpty(item["自我介绍"].ToString()) ? item["自我介绍"].ToString() : "", item["兴趣爱好"] != null && !string.IsNullOrEmpty(item["兴趣爱好"].ToString()) ? item["兴趣爱好"].ToString() : "", item["入职日期"].ToString()));
        //                        if (lists.Count == 3)
        //                        {
        //                            allLists.Add(lists);
        //                            lists = new List<EmployeeDetails>();
        //                            continue;
        //                        }
        //                        if (rowCount == list.ItemCount)
        //                        {
        //                            allLists.Add(lists);
        //                        }

        //                    }
        //                }
        //            }
        //        }
        //    }
        //    return allLists;
        //}

        //private List<List<EmployeeDetails>> GetPicEmployeeList(string strComp, string strDept, string strName)
        //{
        //    List<List<EmployeeDetails>> allLists = new List<List<EmployeeDetails>>();
        //    string hostUrl = this.Page.Request.Url.Scheme + "://" + this.Page.Request.Url.Authority;
        //    if (!string.IsNullOrEmpty(hostUrl))
        //    {
        //        using (SPSite site = new SPSite(hostUrl + "/companyinfo/default.aspx"))
        //        {
        //            using (SPWeb web = site.OpenWeb())
        //            {
        //                SPList list = web.Lists.TryGetList("EmployeeInfo");
        //                if (list != null && list.ItemCount != 0)
        //                {
        //                    List<EmployeeDetails> lists = new List<EmployeeDetails>();
        //                    //公司不为空
        //                    if (strComp != "选择公司" && strDept == "选择部门" && string.IsNullOrEmpty(strName))
        //                    {
        //                        foreach (SPListItem item in list.Items)
        //                        {
        //                            if (item["公司"].ToString().Trim().ToLower() == strComp.Trim().ToLower())
        //                            {
        //                                lists.Add(new EmployeeDetails(item.ID, item["姓名"].ToString().Trim(), item["照片"] != null && !string.IsNullOrEmpty(item["照片"].ToString()) ? UpdatePictureFormat(item["照片"].ToString()) : "/", item["性别"].ToString(), item["公司"].ToString().Trim(), item["部门"].ToString().Trim(), item["职位"].ToString().Trim(), item["固定电话"].ToString().Trim(), item["移动电话"].ToString().Trim(), item["电子邮件"].ToString(), item["生日"].ToString().Trim(), item["新浪微博"].ToString(), item["QQ"].ToString(), item["MSN"].ToString(), item["个人博客地址"].ToString(), item["自我介绍"] != null && !string.IsNullOrEmpty(item["自我介绍"].ToString()) ? item["自我介绍"].ToString() : "", item["兴趣爱好"] != null && !string.IsNullOrEmpty(item["兴趣爱好"].ToString()) ? item["兴趣爱好"].ToString() : "", item["入职日期"].ToString()));
        //                            }
        //                        }
        //                    }
        //                    //部门不为空
        //                    else if (strComp == "选择公司" && strDept != "选择部门" && string.IsNullOrEmpty(strName))
        //                    {
        //                        foreach (SPListItem item in list.Items)
        //                        {
        //                            if (item["部门"].ToString().Trim().ToLower() == strDept.Trim().ToLower())
        //                            {
        //                                lists.Add(new EmployeeDetails(item.ID, item["姓名"].ToString().Trim(), item["照片"] != null && !string.IsNullOrEmpty(item["照片"].ToString()) ? UpdatePictureFormat(item["照片"].ToString()) : "/", item["性别"].ToString(), item["公司"].ToString().Trim(), item["部门"].ToString().Trim(), item["职位"].ToString().Trim(), item["固定电话"].ToString().Trim(), item["移动电话"].ToString().Trim(), item["电子邮件"].ToString(), item["生日"].ToString().Trim(), item["新浪微博"].ToString(), item["QQ"].ToString(), item["MSN"].ToString(), item["个人博客地址"].ToString(), item["自我介绍"] != null && !string.IsNullOrEmpty(item["自我介绍"].ToString()) ? item["自我介绍"].ToString() : "", item["兴趣爱好"] != null && !string.IsNullOrEmpty(item["兴趣爱好"].ToString()) ? item["兴趣爱好"].ToString() : "", item["入职日期"].ToString()));
        //                            }
        //                        }
        //                    }
        //                    //姓名不为空
        //                    else if (strComp == "选择公司" && strDept == "选择部门" && !string.IsNullOrEmpty(strName))
        //                    {
        //                        foreach (SPListItem item in list.Items)
        //                        {
        //                            if (item["姓名"].ToString().Trim().ToLower() == strName.Trim().ToLower())
        //                            {
        //                                lists.Add(new EmployeeDetails(item.ID, item["姓名"].ToString().Trim(), item["照片"] != null && !string.IsNullOrEmpty(item["照片"].ToString()) ? UpdatePictureFormat(item["照片"].ToString()) : "/", item["性别"].ToString(), item["公司"].ToString().Trim(), item["部门"].ToString().Trim(), item["职位"].ToString().Trim(), item["固定电话"].ToString().Trim(), item["移动电话"].ToString().Trim(), item["电子邮件"].ToString(), item["生日"].ToString().Trim(), item["新浪微博"].ToString(), item["QQ"].ToString(), item["MSN"].ToString(), item["个人博客地址"].ToString(), item["自我介绍"] != null && !string.IsNullOrEmpty(item["自我介绍"].ToString()) ? item["自我介绍"].ToString() : "", item["兴趣爱好"] != null && !string.IsNullOrEmpty(item["兴趣爱好"].ToString()) ? item["兴趣爱好"].ToString() : "", item["入职日期"].ToString()));
        //                            }
        //                        }
        //                    }
        //                    //公司与部门不为空
        //                    else if (strComp != "选择公司" && strDept != "选择部门" && string.IsNullOrEmpty(strName))
        //                    {
        //                        foreach (SPListItem item in list.Items)
        //                        {
        //                            if (item["公司"].ToString().Trim().ToLower() == strComp.Trim().ToLower() && item["部门"].ToString().Trim().ToLower() == strDept.Trim().ToLower())
        //                            {
        //                                lists.Add(new EmployeeDetails(item.ID, item["姓名"].ToString().Trim(), item["照片"] != null && !string.IsNullOrEmpty(item["照片"].ToString()) ? UpdatePictureFormat(item["照片"].ToString()) : "/", item["性别"].ToString(), item["公司"].ToString().Trim(), item["部门"].ToString().Trim(), item["职位"].ToString().Trim(), item["固定电话"].ToString().Trim(), item["移动电话"].ToString().Trim(), item["电子邮件"].ToString(), item["生日"].ToString().Trim(), item["新浪微博"].ToString(), item["QQ"].ToString(), item["MSN"].ToString(), item["个人博客地址"].ToString(), item["自我介绍"] != null && !string.IsNullOrEmpty(item["自我介绍"].ToString()) ? item["自我介绍"].ToString() : "", item["兴趣爱好"] != null && !string.IsNullOrEmpty(item["兴趣爱好"].ToString()) ? item["兴趣爱好"].ToString() : "", item["入职日期"].ToString()));
        //                            }
        //                        }
        //                    }
        //                    //公司与姓名不为空
        //                    else if (strComp != "选择公司" && strDept == "选择部门" && !string.IsNullOrEmpty(strName))
        //                    {
        //                        foreach (SPListItem item in list.Items)
        //                        {
        //                            if (item["公司"].ToString().Trim().ToLower() == strComp.Trim().ToLower() && item["姓名"].ToString().Trim().ToLower() == strName.Trim().ToLower())
        //                            {
        //                                lists.Add(new EmployeeDetails(item.ID, item["姓名"].ToString().Trim(), item["照片"] != null && !string.IsNullOrEmpty(item["照片"].ToString()) ? UpdatePictureFormat(item["照片"].ToString()) : "/", item["性别"].ToString(), item["公司"].ToString().Trim(), item["部门"].ToString().Trim(), item["职位"].ToString().Trim(), item["固定电话"].ToString().Trim(), item["移动电话"].ToString().Trim(), item["电子邮件"].ToString(), item["生日"].ToString().Trim(), item["新浪微博"].ToString(), item["QQ"].ToString(), item["MSN"].ToString(), item["个人博客地址"].ToString(), item["自我介绍"] != null && !string.IsNullOrEmpty(item["自我介绍"].ToString()) ? item["自我介绍"].ToString() : "", item["兴趣爱好"] != null && !string.IsNullOrEmpty(item["兴趣爱好"].ToString()) ? item["兴趣爱好"].ToString() : "", item["入职日期"].ToString()));
        //                            }
        //                        }
        //                    }
        //                    //部门与姓名不为空
        //                    else if (strComp == "选择公司" && strDept != "选择部门" && !string.IsNullOrEmpty(strName))
        //                    {
        //                        foreach (SPListItem item in list.Items)
        //                        {
        //                            if (item["部门"].ToString().Trim().ToLower() == strDept.Trim().ToLower() && item["姓名"].ToString().Trim().ToLower() == strName.Trim().ToLower())
        //                            {
        //                                lists.Add(new EmployeeDetails(item.ID, item["姓名"].ToString().Trim(), item["照片"] != null && !string.IsNullOrEmpty(item["照片"].ToString()) ? UpdatePictureFormat(item["照片"].ToString()) : "/", item["性别"].ToString(), item["公司"].ToString().Trim(), item["部门"].ToString().Trim(), item["职位"].ToString().Trim(), item["固定电话"].ToString().Trim(), item["移动电话"].ToString().Trim(), item["电子邮件"].ToString(), item["生日"].ToString().Trim(), item["新浪微博"].ToString(), item["QQ"].ToString(), item["MSN"].ToString(), item["个人博客地址"].ToString(), item["自我介绍"] != null && !string.IsNullOrEmpty(item["自我介绍"].ToString()) ? item["自我介绍"].ToString() : "", item["兴趣爱好"] != null && !string.IsNullOrEmpty(item["兴趣爱好"].ToString()) ? item["兴趣爱好"].ToString() : "", item["入职日期"].ToString()));
        //                            }
        //                        }
        //                    }
        //                    //全不为空
        //                    else if (strComp != "选择公司" && strDept != "选择部门" && !string.IsNullOrEmpty(strName))
        //                    {
        //                        foreach (SPListItem item in list.Items)
        //                        {
        //                            if (item["公司"].ToString().Trim().ToLower() == strComp.Trim().ToLower() && item["部门"].ToString().Trim().ToLower() == strDept.Trim().ToLower() && item["姓名"].ToString().Trim().ToLower() == strName.Trim().ToLower())
        //                            {
        //                                lists.Add(new EmployeeDetails(item.ID, item["姓名"].ToString().Trim(), item["照片"] != null && !string.IsNullOrEmpty(item["照片"].ToString()) ? UpdatePictureFormat(item["照片"].ToString()) : "/", item["性别"].ToString(), item["公司"].ToString().Trim(), item["部门"].ToString().Trim(), item["职位"].ToString().Trim(), item["固定电话"].ToString().Trim(), item["移动电话"].ToString().Trim(), item["电子邮件"].ToString(), item["生日"].ToString().Trim(), item["新浪微博"].ToString(), item["QQ"].ToString(), item["MSN"].ToString(), item["个人博客地址"].ToString(), item["自我介绍"] != null && !string.IsNullOrEmpty(item["自我介绍"].ToString()) ? item["自我介绍"].ToString() : "", item["兴趣爱好"] != null && !string.IsNullOrEmpty(item["兴趣爱好"].ToString()) ? item["兴趣爱好"].ToString() : "", item["入职日期"].ToString()));

        //                            }
        //                        }
        //                    }
        //                    //全为空
        //                    else
        //                    {
        //                        return GetPicEmployeeList();
        //                    }
        //                    if (lists != null && lists.Count != 0)
        //                    {
        //                        if (lists.Count > 3)
        //                        {
        //                            for (int i = 0; i < lists.Count; i += 3)
        //                            {
        //                                List<EmployeeDetails> tempList = new List<EmployeeDetails>();
        //                                try
        //                                {
        //                                    if (lists.Contains(lists[i]))
        //                                    {
        //                                        tempList.Add(lists[i]);
        //                                    }
        //                                    if (lists.Contains(lists[i + 1]))
        //                                    {
        //                                        tempList.Add(lists[i + 1]);
        //                                    }
        //                                    if (lists.Contains(lists[i + 2]))
        //                                    {
        //                                        tempList.Add(lists[i + 2]);
        //                                    }
        //                                }
        //                                catch
        //                                {
        //                                }
        //                                allLists.Add(tempList);
        //                            }
        //                        }
        //                        else
        //                        {
        //                            allLists.Add(lists);
        //                        }
        //                    }
        //                }
        //            }
        //        }
        //    }
        //    return allLists;
        //}

        //protected void gvEppic_PageIndexChanging(object sender, GridViewPageEventArgs e)
        //{
        //    gvEppic.PageIndex = e.NewPageIndex;
        //    gvEppic.DataSource = GetPicEmployee();
        //    gvEppic.DataBind();
        //}

        //全家福查询
        //protected void imb2_Click(object sender, ImageClickEventArgs e)
        //{
        //    string strComp = ddl3.SelectedItem.Text.Trim();
        //    string strDept = ddl4.SelectedItem.Text.Trim();
        //    string strName = txt2.Text.Trim();
        //    if (strComp == "选择公司" && strDept == "选择部门" && string.IsNullOrEmpty(strName))
        //    {
        //        gvEppic.DataSource = GetPicEmployee();
        //        gvEppic.DataBind();
        //    }
        //    else
        //    {
        //        List<string> lists = GetPicEmployee(strComp, strDept, strName);
        //        if (lists != null && lists.Count != 0)
        //        {
        //            gvEppic.DataSource = lists;
        //            gvEppic.DataBind();
        //        }
        //        else
        //        {
        //            gvEppic.DataSource = null;
        //            gvEppic.DataBind();
        //        }
        //    }
        //}
        #endregion

        //防止GridView翻页时报错
        protected void gvEp_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            gvEp.PageIndex = e.NewPageIndex;
            string strComp = ddl1.SelectedItem.Text.Trim();
            string strDept = ddl2.SelectedItem.Text.Trim();
            string strName = txt1.Text.Trim();
            gvEp.DataSource = GetEmployee(strComp, strDept, strName);
            gvEp.DataBind();

        }



        //通讯录查询
        protected void imb1_Click(object sender, ImageClickEventArgs e)
        {
            string strComp = ddl1.SelectedItem.Text.Trim();
            string strDept = ddl2.SelectedItem.Text.Trim();
            string strName = txt1.Text.Trim();
            if (strComp == "选择公司" && strDept == "选择部门" && string.IsNullOrEmpty(strName))
            {
                List<EmployeeDetails> listes = GetEmployee();
                gvEp.DataSource = listes;
                if (listes != null && listes.Count > 0)
                {
                    gvEp.PageIndex = 0;
                }
                gvEp.DataBind();
                
            }
            else
            {
                List<EmployeeDetails> lists = GetEmployee(strComp, strDept, strName);
                if (lists != null && lists.Count != 0)
                {
                    gvEp.DataSource = lists;
                    if (lists != null && lists.Count > 0)
                    {
                        gvEp.PageIndex = 0;
                    }
                    gvEp.DataBind();
                    

                }
                else
                {
                    gvEp.DataSource = null;
                    gvEp.DataBind();                   
                }
            }
        }

        void gvEp_RowDataBound(object sender, GridViewRowEventArgs e)
        {
        
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                // Display the company name in italics.
                // e.Row.Cells[1].Text = "<i>" + e.Row.Cells[1].Text + "</i>";
                // e.Row.Cells[1].ToolTip = "";

                //   3  Eval("Position").ToString().Length > 8 ? Eval("Position").ToString().Substring(0, 8) + "..." : Eval("Position").ToString()
                //   4  <%# Eval("Telephone").ToString().Length > 9 ? Eval("Telephone").ToString().Substring(0, 9) + "..." : Eval("Telephone").ToString()%>
                // 5 <%# Eval("Mobilephone").ToString().Length > 11 ? Eval("Mobilephone").ToString().Substring(0, 11) + "..." : Eval("Mobilephone").ToString()%>

                if (e.Row.Cells[2].Text.Length > 8)
                {
                    e.Row.Cells[2].ToolTip = e.Row.Cells[2].Text;
                    e.Row.Cells[2].Text = e.Row.Cells[2].Text.Substring(0, 6) + "...";
                }

                if (e.Row.Cells[3].Text.Length > 8)
                {
                    e.Row.Cells[3].ToolTip = e.Row.Cells[3].Text;
                    e.Row.Cells[3].Text = e.Row.Cells[3].Text.Substring(0, 8) + "...";
                }

                if (e.Row.Cells[4].Text.Length > 9)
                {
                    e.Row.Cells[4].ToolTip = e.Row.Cells[4].Text;
                    e.Row.Cells[4].Text = e.Row.Cells[4].Text.Substring(0, 9) + "...";
                }

                if (e.Row.Cells[5].Text.Length > 11)
                {
                    e.Row.Cells[5].ToolTip = e.Row.Cells[5].Text;
                    e.Row.Cells[5].Text = e.Row.Cells[5].Text.Substring(0, 8) +"...";
                }
            }
        }



        private List<string> InitCompany()
        {
            List<string> comps = new List<string>();
            comps.Add("选择公司");
            string hostUrl = this.Page.Request.Url.Scheme + "://" + this.Page.Request.Url.Authority;
            if (!string.IsNullOrEmpty(hostUrl))
            {
                using (SPSite site = new SPSite(hostUrl + "/companyinfo"))
                {
                    using (SPWeb web = site.OpenWeb())
                    {
                        SPList list = web.Lists.TryGetList("EmployeeInfo");
                        if (list != null && list.ItemCount != 0)
                        {
                            foreach (SPListItem item in list.Items)
                            {
                                if (!comps.Contains(item["公司"].ToString().Trim()))
                                {
                                    comps.Add(item["公司"].ToString().Trim());
                                }
                            }
                        }
                    }
                }
            }
            return comps;
        }

        /// <summary>
        /// 添加项目内公司列表
        /// </summary>
        /// <param name="name"></param>
        /// <returns></returns>
        private List<string> InitCompany(string name)
        {
            List<string> comps = new List<string>();
            //comps.Add("选择公司");
            string hostUrl = this.Page.Request.Url.Scheme + "://" + this.Page.Request.Url.Authority;
            if (!string.IsNullOrEmpty(hostUrl))
            {
                using (SPSite site = new SPSite(hostUrl + "/companyinfo"))
                {
                    using (SPWeb web = site.OpenWeb())
                    {
                        SPList list = web.Lists.TryGetList("EmployeeInfo");
                        if (list != null && list.ItemCount != 0)
                        {
                            foreach (SPListItem item in list.Items)
                            {
                                if (item["公司"].ToString().Trim().StartsWith(name))
                                {
                                    if (!comps.Contains(item["公司"].ToString().Trim()))
                                    {
                                        comps.Add(item["公司"].ToString().Trim());
                                    }
                                }
                            }
                        }
                    }
                }
            }
            return comps;
        }

        private List<string> InitDepartment()
        {
            List<string> depts = new List<string>();
            depts.Add("选择部门");
            string hostUrl = this.Page.Request.Url.Scheme + "://" + this.Page.Request.Url.Authority;
            if (!string.IsNullOrEmpty(hostUrl))
            {
                using (SPSite site = new SPSite(hostUrl + "/companyinfo"))
                {
                    using (SPWeb web = site.OpenWeb())
                    {
                        SPList list = web.Lists.TryGetList("EmployeeInfo");
                        if (list != null && list.ItemCount != 0)
                        {
                            foreach (SPListItem item in list.Items)
                            {
                                if (!depts.Contains(item["部门"].ToString().Trim()))
                                {
                                    depts.Add(item["部门"].ToString().Trim());
                                }
                            }
                        }
                    }
                }
            }
            return depts;
        }


    }

    public class EmployeeDetails
    {
        public int EID { get; set; }

        public string Name { get; set; }

        public string Picture { get; set; }

        public string Sex { get; set; }

        public string Company { get; set; }

        public string Department { get; set; }

        public string Position { get; set; }

        public string Telephone { get; set; }

        public string Mobilephone { get; set; }

        public string Email { get; set; }

        public string Birthday { get; set; }

        public string Weibo { get; set; }

        public string QQ { get; set; }

        public string MSN { get; set; }

        public string BlogAddress { get; set; }

        public string Introduction { get; set; }

        public string Hobby { get; set; }

        public string EntryDate { get; set; }

        public int OrderNum { get; set; }

        public EmployeeDetails(int eid, string name, string picture, string sex, string company, string department, string position, string telephone, string mobilephone, string email, string birthday, string weibo, string qq, string msn, string blogaddress, string introduction, string hobby, string entryDate,int orderNum)
        {
            this.EID = eid;
            this.Name = name;
            this.Picture = picture;
            this.Sex = sex;
            this.Company = company;
            this.Department = department;
            this.Position = position;
            this.Telephone = telephone;
            this.Mobilephone = mobilephone;
            this.Email = email;
            this.Birthday = birthday;
            this.Weibo = weibo;
            this.QQ = qq;
            this.MSN = msn;
            this.BlogAddress = blogaddress;
            this.Introduction = introduction;
            this.Hobby = hobby;
            this.EntryDate = entryDate;
            this.OrderNum = orderNum;
        }
    }
}
